The Universal Serial Bus (USB) is a specification to establish communication between devices and a host controller. Originally designed for personal computers, the USB is intended to replace many varieties of serial and parallel ports. For example, USB connects many computer peripherals such as mice, keyboards, digital cameras, printers, personal media players, flash drives, external hard drives, and the like. Although designed for personal computers, USB has found application in a broad variety of other data communication contexts.
The USB has evolved through three major revisions, and several minor ones. The USB 1.0 specification, introduced in 1996, supported a data transfer rate of 1.5 Mbit/s, now referred to as “low speed.” USB 1.1 introduced a “full speed” data transfer rate of 12 Mbit/s. USB 2.0, introduced in 2001, features a “hi-speed” rate of 480 Mbit/s. The USB 3.0 specification was released in late 2008, with controller chips available in early 2009. USB 3.0 defines a SuperSpeed data rate of 4.8 Gbit/s.
Flash memory is a non-volatile, solid state, digital data storage medium. Technically a type of EEPROM, NAND type flash (the most commercially common form of flash memory) is not usually byte-programmable, but must be read, written, and erased on a block basis. Additionally, wear leveling (dynamically remapping the physical memory to evenly spread physical write/erase cycle stress), bad block mapping, and other functions unique to NAND flash memory often require a dedicated controller for mass storage devices utilizing NAND flash as a storage medium.
The MultiMedia Card (MMC) is a flash memory card standard that defines the physical dimensions and operational characteristics of a small, removable mass storage device employing NAND flash memory. Embedded MMC (eMMC) describes a memory architecture combining embedded NAND flash memory and a high-speed MMC controller in a standard package (e.g., integrated circuit). eMMC simplifies system design by freeing a system processor from low-level flash memory management tasks. SD/MMC (Secure Digital) is another standard for removable memory based on the MMC form factor, which also combines flash memory with a memory controller. The SD controller provides Digital Rights Management (DRM) support. eMMC memory and SD/MMC card slots are commonly designed into consumer electronic devices, such as digital cameras and mobile phones, as a means of data storage and transfer.
Electronic devices deployed in the field, such as mobile cellular telephones, music players, digital cameras, satellite navigation receivers, and the like, are increasingly used to carry and render large quantities of digital content such as music, photographs and movies. The increasing data storage capacities of eMMC memory and SD/MMC cards reflect this fact. Due to the ever-increasing capacity of these cards, there is a need to accelerate data transfers between external sources and the storage memory. This need for speedy transfers from outside the electronic device is best met when the mobile platform's embedded system controller, or application processor, does not have to act as a mediator between a fast external host and the storage memory (e.g., eMMC memory and SD/MMC flash memory cards). Optimum speed is achieved when an accelerated storage controller is able to offload the fast transfer activity from the application processor. This concept is often known as side-loading. However, this capability conventionally means that the electronic device's application processor can no longer directly access its embedded or removable memory, and must instead request access to the stored data through the accelerated storage handler to which the memory is directly connected.
Conventional electronic devices do not have the ability to access storage memory via an intermediate device, due to traditional hardware and software architectures being designed for direct memory access. However, hardware architectures that can benefit from accelerated data and file transfers from an external host computer would be advantageous.